"""
	udp套接字 面向无连接的传输方式, 如果需要断开链接直接关闭即可无需tcp一样流程
		流程:
			socket --> bind --> recvfrom --> sendto --> close
			实例化套接字 --> 绑定ip端口 --> 收取消息 --> 发送消息 --> 关闭服务
		释义:
			1. 创建数据报 套接字s
				sockfd = socket(socket.AF_INET, socket.SOCK_DGRAM)
			2. 绑定地址
				sockfd.bind(addr) addr是元组形式
			3. 收取消息
				data, addr = sockfd.recvfrom(buffer_size)
				功能: 接受UDP消息
				参数: 每次最多接收多少字节
				返回值: data, 客户端发送的消息
						addr, 客户端的地址和端口
			4. 发送消息
				n = sockfd.sendto(data, addr)
				功能: 发送udp消息
				参数: data 发送的内容 bytes格式
					  addr 目标ip
			5. 关闭服务
				sockfd.close()
"""

from socket import *


sockfd = socket(AF_INET, SOCK_DGRAM)
sockfd.bind(("127.0.0.1", 8693))
#
while True:
	data, addr = sockfd.recvfrom(1024)  # 接收
	print(f"与客户端链接成功: {addr}")
	print(f"客户端:{data.decode()}")
	if not data:
		break
	da = input("发送客户端:")
	sockfd.sendto(da.encode(), addr)  # 发送

sockfd.close()



